<?php

/**
 * Permite hacer operaciones con la tabla multa de la base de datos
 * @package simertweb 
 * @subpackage models 
 * @category Administración, Recaudación
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com>
 * @version 1.0  
 */
class Mmultas extends CI_Model {

    function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->model('mhistorico');
        $this->load->model('mcalles');
    }

    /**
     * Obtiene el id de la multa
     * @param type $codigo es el código de la multa
     * @return type int
     */
    function id_multa($codigo) {
        if((isset($codigo))){
            $this->db->where('codigo', $codigo);
            $query = $this->db->get('multa')->row()->idMulta;
            return $query;
        }
        
    }

    /**
     * Busca una multa 
     * @param type $codigo es el código de la multa
     * @return string|array
     */
    function buscar($codigo) {
        $this->db->where('codigo', $codigo);
        //almacena el registro de la multa, de acuerdo al codigo ingresado
        $dato = $this->db->get('multa')->row();
        $registro = array();

        if (empty($dato)) {
            return '<font color="red"> MULTA NO EXISTE EN EL SISTEMA</font>';
        } else {
            if ($dato->pagado == 0 && $dato->anulado == '0') {
                //se obtiene en la variable $union todos los tipos de multa, de la multa
                $this->db->where('Multa_idMulta', $dato->idMulta);
                $union = $this->db->get('tipomulta_has_multa')->result();
                $monto = 0.00;
                $razon = "";

                //$controlador almacena el nombre del controlador
                $this->db->where('idControlador', $dato->Controlador_idControlador);
                $idEmpl = $this->db->get('controlador')->row()->Empleado_idEmpleado;
                $this->db->where('idEmpleado', $idEmpl);
                $idPer = $this->db->get('empleado')->row()->idPersona;
                $this->db->where('idPersona', $idPer);
                $cont = $this->db->get('persona')->row();

                //sacar la ubicacion de la multa
                $this->db->where('idZona', $dato->Subcalle_idZona);
                $zona = $this->db->get('zonaestacionamiento')->row()->nombreZona;
                $this->db->where('idSubcalle', $dato->Subcalle_idSubcalle);
                $calle = $this->db->get('subcalle')->result();
                $ubicacion = $this->mcalles->calle($calle[0]->principal) . ' ENTRE ' .
                        $this->mcalles->calle($calle[0]->secundaria1) . ' Y ' . $this->mcalles->calle($calle[0]->secundaria2);

                foreach ($union as $value) {
                    $this->db->where('idTipoMulta', $value->TipoMulta_idTipoMulta);
                    $tipo = $this->db->get("tipomulta")->row();
                    $monto = $monto + $tipo->valor;
                    $razon = $razon . ' ' . $tipo->razon;
                }
                //almacena toda la información de la multa
                $reg = array(
                    "codigo" => $dato->codigo,
                    "usuario" => $dato->usuario,
                    "concepto" => $razon,
                    "valor" => $monto,
                    "fecha" => $dato->fecha,
                    "hora" => $dato->hora,
                    "placa" => $dato->placa,
                    "ubicacion" => $ubicacion,
                    "controlador" => $cont->nombre . ' ' . $cont->apellido
                );
                array_push($registro, $reg);
                return $registro;
            } else {
                return '<font color="red">AVISO: MULTA CANCELADA O ANULADA</font>';
            }
        }
    }

    /**
     * Guarda el pago de una multa
     * @param type $codigo
     */
    function cancelar($codigo) {
        date_default_timezone_set('America/Guayaquil');
        $fecha = date('Y-m-d');
        $data = array('pagado' => 1, 'fechaPago' => $fecha);
        $this->db->where('codigo', $codigo);
        $this->db->update('multa', $data);
        $this->mhistorico->guardar_acceso($this->id_multa($codigo), "Pago de una multa");
    }

    /**
     * Obtiene las multas no pagadas
     * @return type
     */
    function multasAPagar() {
        $this->db->where('pagado', 0);
        $multas = $this->db->get(multa);
        return $multas->result();
    }

    function obtener_id_multa($razon) {
        $this->db->where('razon', $razon);
        $multas = $this->db->get('tipomulta');
        return $multas->row()->idTipoMulta;
    }
    
    
}

?>
